package com.dr.java.day04;

import static com.dr.java.day04.Array1.printArrAsStr;

/**
 * Created by rui on 2017/12/29.
 */
public class SortArr {
    public static void main(String[] args) {
        int[] arr = {5, 1, 0, 4, 2, 8, 9, 3};
        printArrAsStr(arr);
//        printArrAsStr(sort(arr));
        printArrAsStr(bubbleSort(arr));
    }

    //    冒泡比较：临近两个元素比较，不断先后，最终将最值放在后面
    private static int[] bubbleSort(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    swap(arr, j, j + 1);
                }
            }
        }
        return arr;
    }

    //    选择排序：拿一个值和其他值依次比较，比较完一轮，再换一个值和其他值比较
    public static int[] sort(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[i] > arr[j]) {
                    swap(arr, i, j);
                }
            }
        }
        return arr;
    }

    private static void swap(int[] arr, int i, int j) {
        arr[i] = arr[i] ^ arr[j];
        arr[j] = arr[i] ^ arr[j];
        arr[i] = arr[i] ^ arr[j];
    }


}
